Video processor using shared memory space

ABSTRACT

Memory requirements in a video processor and display system are reduced by storing in memory processed video signals for a plurality of regions of a picture, processing video signals for additional regions of a picture while stored video signals are retrieved in controlling a display, and then storing the newly processed video signals in the memory space occupied by the retrieved video signals. An entire reconstructed frame of image signals is not needed in order to begin the display of the same frame, certain regions of the frame can be displayed while other regions are still being reconstructed. Overwrite protection is provided for stored image signals until the stored image signals are retrieved for image display.

BACKGROUND OF THE INVENTION

[0001] This invention relates generally to video data processing and display, and more particularly the invention relates to a video processor system having reduced memory capacity requirements through the sharing of physical memory space.

[0002] A video picture is created by scanning a display surface line-by-line from top to bottom, such as by an electron beam scanning a phosphor-coated surface. Video processing and display are based on industry standards such as NTSC in North America, and PAL in Europe. In the NTSC standard, one picture or frame comprises two interlaced fields, with each field having 240 scan lines and a frame having 480 scan lines. Each scan line has 704 picture elements or pixels with the light intensity of a pixel being defined by an 8-bit digital code. Each frame is scanned 30 times per second, therefore, 60 interlaced fields are scanned per second. Each NTSC frame requires 506,880 bytes of data; a PAL frame requires 608,256 bytes of data. Additional memory storage is required in processing compressed data, such as according to the MPEG standard, to recover the full video data. Thus, the memory requirements of a video processor system can become enormous.

[0003] The present invention reduces required memory storage capacity by reconstructing part of a field or frame of data while other parts of the field or frame data are being displayed, the reconstructed data then being stored by overwriting the displayed data in memory.

SUMMARY OF THE INVENTION

[0004] In accordance with the invention, a video processor reconstructs digital video data for a picture field or frame while the field or frame is being displayed. Once a portion of the picture is displayed, the memory location for the displayed portion can be reused for the latest reconstructed data.

[0005] More particularly, in accordance with one embodiment of the invention, a picture frame is divided into a plurality of regions, such as 6 regions from top to bottom of the frame. The scan lines for a first or top field and for a second or bottom field thus define 12 logical regions; 6 for the top field and 6 for the bottom field. In accordance with one feature of the invention, the memory for storing pixel data for the scan lines can have fewer physical storage regions than there are picture regions. For example, 9 memory regions can be used for storing the 12 picture regions. As stored data for scan lines is read for scanning a display surface, the data is erased or overwritten as the memory storage area becomes available for newly calculated data. Thus, an index or pointers to the storage locations are continually updated as displayed data is erased and new data is stored.

[0006] Processor speed in calculating new video (pixel) data necessarily must be at least as fast as the accessing of video data for imaging in order to provide the frame or field data as a frame or field is being displayed. Attendant with the increased processor speed is a reduction in required memory capacity.

[0007] The invention and objects and features thereof would be more readily apparent from the following detailed description and dependent claims when taken with the drawing.

BRIEF DESCRIPTION OF THE DRAWINGS

[0008]FIG. 1 is a functional block diagram of a video processor and display system.

[0009]FIG. 2 illustrates the raster scan of a video display using two interlace fields (top, bottom) per video frame.

[0010]FIGS. 3A, 3B illustrate a picture frame divided into 12 regions (T0-T5, B0-B5).

[0011]FIG. 4 illustrates the division of memory into 9 partitions (0-8) for storing video data for the picture regions of FIGS. 3A, 3B.

[0012]FIG. 5 illustrates a flow diagram for calculating pointers to memory storage locations for identifying video data for picture regions stored therein.

DETAILED DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENTS

[0013]FIG. 1 illustrates a functional block diagram of a video processing system in which a processor 10 receives transmitted video data, which can be compressed according to the JPEG standard, for example, the processor reconstructing the video data for storage in a memory 12 along with address pointers identifying the location of the data in memory. Thereafter, data is retrieved from memory by the processor and is used in controlling the display of an image on display 14, which can be a raster scanned electron beam impinging on a phosphor-coated surface.

[0014]FIG. 2 illustrates a displayed picture on display 14 with the picture being defined by scanning electron beams in a first or top field and then in a second or bottom field with the scan lines of the two fields being interleaved, as shown. As noted above, each frame is scanned 30 times per second according to the NTSC standard, therefore, 60 interlaced top and bottom fields are scanned per second.

[0015] In accordance with the invention, memory 12 is divided into a plurality of storage regions such as nine 9 regions as illustrated in FIG. 4. In order to limit the capacity of the memory, processor 10 generates video control data for storage in memory 12 as other data is retrieved from memory 12 for controlling display 14. For example, in FIG. 4, as the video data is retrieved from memory regions 0 and 1 for the first two top field regions, T0, T1, the image data for bottom field regions B3, B4 are processed for storage in memory regions 0, 1 from which video data T0, T1 has been retrieved. Thus, data is continually cycled through the memory for temporary storage until retrieved for display image control. The entire reconstructed picture frame is not needed in order to begin the display of the same frame. Certain regions of the frame can be displayed while control data for other regions are still being reconstructed. In essence, regions of the display are being reconstructed while other regions are being displayed. In accordance with the invention, overwrite protection is provided for stored image data until the reconstructed regions are displayed.

[0016]FIG. 5 is a flow diagram for the procedure in calculating pointers to physical memory partitions in which frame or field video signals are stored. In the following description of the flow diagram of FIG. 5, the following glossary of terms is used:

[0017] 1. DRx: Physical DRAM partition. Every frame is divided into 12 equal DRAM partitions (DR0 through DR11).

[0018] 2. FRx: Display Frame partition. Every display frame is divided into 6 equal partitions (FR0 through FR5). Note that every display partition includes both top and bottom field portion.

[0019] 3. Field-based picture: Picture bit stream that has been encoded using two fields of a picture frame. Field motion compensation is used only in MPEG2.

[0020] 4. Frame-based picture: Picture bit stream that has been encoded using the entire frame picture. This is related to the frame motion compensation that is used both in MPEG1 and MPEG2.

[0021] 5. Progressive display: This is the type of display format where the entire frame is raster scanned.

[0022] 6. Interlace display: This is the type of display format where the two fields of a frame picture are raster scanned separated by a field period (one half of the frame period).

[0023] 7. TFx_REC_PNTR[3.0]: Top field reconstruction region pointers (TFO_REC_PNTR[3.0] through TF5_REC_PNTR[3.0].

[0024] 8. UFx_REC_PNTR[3.0]: Bottom field reconstruction region pointers (UFO_REC_PNTR[3.0] through UF5_REC_PNTR[3.0]).

[0025] 9. MB_HEIGHT[5.0]: Decoded picture height based on number of macro blocks (16×16).

[0026] 10. RGN_HEIGHT[1.0]: DRAM partition height based on number of macro blocks.

[0027] 11. B_FRM_BASE_ADDR[15.0]: The memory physical address where the B-frame storage starts in 8-byte increments.

[0028] 12. DRx_FLAG: The DRAM partition status flag, when a one it indicates that the region is available for reconstruction, when a zero it indicates that the region has been fully reconstructed and is ready for display.

[0029] 13. TF_XBASE_ADDR[19.0]: The physical address of starting location of the individual top field (DRAM) partitions.

[0030] 14. UFx_BASE_ADDR[19.0]: The physical address of starting location of the individual bottom field memory (DRAM) partitions.

[0031] Referring to the flowchart depicted in FIG. 5, upon start of B-frame sequence in step 202 all regions are available for reconstruction and all the DRx_FLAGS (DR0_FLAG through DR7_FLAG) are set to 1. The x variable is for the field memory pointer the y variable is for the top field and the z variable is for the bottom field. Step 204 determines if all 8 regions have been reconstructed. If not, then step 206 checks to determine if the DRX_FLAG associated with the region is 1, meaning that the region is free for reconstruction. If the DRx_FLAG is free for reconstruction, step 208 determines if the reconstruction is performed on a frame-based picture as opposed to a field-based picture, and if so transfer the processing to step 210 which determines if the TOP value is 1.

[0032] If TOP is not 1, step 212 determines if the entire bottom field has been reconstructed by checking if z is 6. If yes, then step 214 sets z to 0 and then step 212 passes the processing to step 216. Step 216 sets pointer UFz_REC_PNTR[3.0] to x and resets the DRx_FLAG to 0 indicating that the region is ready for display and is not free for reconstruction. Then, step 218 increments x and z and returns the processing to step 204.

[0033] If TOP is 1, step 220 determines if the entire top field has been reconstructed by checking if y is 6. If yes, then step 222 sets y to 0 and the step 220 passes the processing to step 224. Step 224 sets pointer TFy_REC_PNTR[3.0] to x and resets the DRx_FLAG to 0 indicating that the region is ready for display and is not free for reconstruction. Then, step 226 increments x and z and returns the processing to step 204.

[0034] When the video processor determines that the video is not a frame-based picture in step 208, step 230 determines if the video information is for the top field. If so, step 232 determines if the entire top field has been reconstructed by checking if y is 6. If yes, then step 234 sets y to 0 and then step 232 passes the processing to step 236. Step 236 sets pointer TFy_REC_PNTR[3.0] to x and resets the DRx_FLAG to 0 indicating that the region is ready for display and is not free for reconstruction. Then, step 226 increments x and y and returns the processing to step 204.

[0035] When step 206 determines that the DRx_FLAG is not set to 1, step 250 determines is all DRx_FLAGS are set to 0. If so, all MC requests are masked out and the processing returns to step 250. It should be noted that the mechanism by which the reconstruction is halted in step 250, when no region is available for decoding, is done by masking the MC (Motion Compensation Module) request to write the reconstructed Block back to DRAM. This method is very easy and may be used both by Microcode and Hardware solution. When a DRx_FLAG is set to 0 because a region is free for reconstruction, step 250 passes the processing to step 254 which increments x and enables the MC request. Then, step 254 returns the processing to step 204. To perform video processing for the NTSC standard, 60 fields per second are required. To achieve this data rate, each region is reconstructed in less than 2.8 msec. Therefore, an entire top or bottom field is reconstructed in less than the required 16.66 msec.

[0036] If step 230 determines that the video information is not for the top field, step 240 determines if the entire bottom field has been reconstructed by checking if z is 6. If yes, then step 242 sets z to 0 and then step 240 passes the processing to step 244. Step 244 sets pointer UFz_REC_PNTR[3.0] to x and resets the DRx_FLAG to 0 indicating that the region is ready for display and is not free for reconstruction. Then, step 218 increments x and z and returns the processing to step 204.

[0037] There has been described a video processor and display system in which memory space is reduced by the recycling of memory storage locations for the storage of processed video signals while other video signals are retrieved for display control. The total memory capacity can be less than the video image data required for a complete picture reconstruction. While the invention has been described with reference to a specific embodiment, the description is illustrative of the invention and is not to be construed as limiting the invention. Various modifications and applications may occur to those skilled in the art without departing from the true spirit and scope of the invention as defined by the appended claims. 

What is claimed is:
 1. A video processor and display system comprising: a) a processor for receiving and processing video signals to provide digital display control signals, b) a memory coupled to the processor for storing said digital video display signals, said memory having a storage capacity of less than video display signals for one complete display picture, said memory including means to prevent erasure of stored video signals until the stored video signals are retrieved for video display control, and then allowing new video data to write over the retrieved video signals, whereby new video signals for a picture are being stored as other video signals for the picture are being retrieved, and c) a video display for receiving video signals from said memory for use in controlling a raster scan in the display.
 2. The video processor and display system as defined by claim 1 wherein the display is divided into a first plurality of regions, said processor processing video signals for one of said first plurality of regions while video signals are retrieved from memory for another one of the first plurality of regions.
 3. The processor and display system as defined by claim 2 wherein said memory is divided into a second plurality of regions, said second plurality being different in number from said first plurality, said processor generating pointers to said second plurality memory regions for video signals corresponding to one of said first plurality of regions of image.
 4. The video processor and display system as defined by claim 3 wherein said first plurality of image signals includes two fields of interlaced raster scan lines.
 5. The video processor and display system is defined by claim 4 wherein said first plurality of image signals includes 6 top field regions and 6 bottom field regions.
 6. The video processor and display system as defined by claim 5 wherein said second plurality of memory regions comprises 9 regions, said 12 field regions of video signals cycling through said 9 regions of memory with video signals retrieved from memory for picture control being replaced by newly processed video signals.
 7. A method of processing video signals by a processor for use in controlling a display, the processed video signals being stored in a memory prior to retrieval for controlling the display, said method comprising the steps of: a) providing a memory with storage capacity for a partial image; b) retrieving processed video signals from a region of memory for controlling the display of a part of an image while the processor processes other video signals for another part of the image; and c) storing the newly processed video signals in a region of memory from which processed video signals were retrieved.
 8. The method as defined by claim 7 wherein the display is divided into a first plurality of regions, said processor processing video signals for one of said first plurality of regions while video signals are retrieved from memory for another one of the first plurality of regions.
 9. The method as defined by claim 8 wherein step a) includes dividing said memory into a second plurality of regions, said second plurality being different in number from said first plurality, said processor generating pointers to said second plurality of memory regions for video signals corresponding to one of said first plurality of regions of image.
 10. The method as defined by claim 9 wherein said first plurality of image signals includes 2 fields of interlaced raster scan lines.
 11. The method as defined by claim 10 wherein said first plurality of image signals includes 6 top field regions and 6 bottom field regions.
 12. The method as defined by claim 11 wherein step a) includes providing a memory with 9 regions, said 12 regions of video signals cycling through said 9 regions of memory with imaged video signals being replaced by newly processed video signals. 